const BaseController = require('../BaseController');

/**
 * 规定 mock-server-table 存放表信息
 *  1. 没有权限，在任何地方不能操作此表
 *  2. mock-server-table 各个表的信息保存在这里，可以删除，修改，新增，但是必须是超级管理员才可以
 */
class CategoryController extends BaseController {
	// 查询
	async queryCategory() {
        const { ctx, app, service } = this;
		// 解析参数主要是查询参数
		const res = await service.admin.categoryService.queryCategory();
		return this.ok(res);
	}
	// 创建分类
	async createCategory() {
		const { ctx, app, service } = this;
		ctx.validate({
			categoryName: { type: 'string', required: true },
			parentId: { type: 'string', required: true }
		});
		const res = await service.admin.categoryService.createCategory(ctx.request.body);
		return this.ok(res);
	}
	// 更新分类
	async updateCategory() {
		const { ctx, app, service } = this;
		ctx.validate({
			categoryName: { type: 'string', required: true },
			parentId: { type: 'string', required: true },
			_id: { type: 'string', required: true }
		});
		const res = await service.admin.categoryService.updateCategory(ctx.request.body);
		return this.ok(res);
	}
	// 删除分类
	async deleteCategory() {
		const { ctx, app, service } = this;
		// 解析参数主要是查询参数
		const id = ctx.params.id;
		ctx.validate({
			id: { type: 'string', required: true }
		}, { id });
		const res = await service.admin.categoryService.deleteCategory(id);
		return this.ok(res);
	}
}

module.exports = CategoryController;
